How I design prompt contracts and agent roles so coding agents can work inside a real engineering process without turning every task into guesswork.